package com.yejiali.backend.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.yejiali.backend.entity.Comments;
import com.yejiali.backend.entity.dto.CommentDTO;
import com.yejiali.backend.entity.dto.CommentReplyDTO;
import com.yejiali.backend.entity.vo.CommentReplyVO;
import com.yejiali.backend.entity.vo.CommentVO;
import com.yejiali.backend.response.Response;

import java.util.List;

/**
 * 评论表(Comments)表服务接口
 *
 * @author yejiali
 * @since 2025-07-25 17:34:37
 */
public interface CommentsService extends IService<Comments>{


    /**
     * 根据视频ID查询评论(多级评论）
     * @param videoId 视频ID
     * @return 评论列表
     */
    Response<List<CommentVO>> getCommentNewById(Long videoId);

    /**
     * 根据视频ID查询评论（最热评论）
     * @param videoId 视频ID
     * @return 评论列表
     */
    Response<List<CommentVO>> getCommentHotById(Long videoId,Long userId);

    /**
     * 新增评论
     * @param commentDTO
     * @return
     */
    Response<String> addComment(CommentDTO commentDTO) throws JsonProcessingException;


    /**
     * 查询回复我的评论的通知
     * @param userId
     * @return
     */
    Response<CommentReplyDTO> replyComment(Long userId, Integer pageNum, Integer pageSize);

    /**
     * 逻辑删除回复我的评论的通知
     * @param commentId
     * @return
     */
    Response<String> deleteReplyComment(Long commentId);

    /**
     * 对回复我的评论的回复
     * @param commentDTO
     * @return
     */
    Response<String> replyReplyComment(CommentDTO commentDTO);

}
